﻿using UnityEngine;
using QFramework;
using System;

namespace HKTools
{
    /// <summary>
    /// 目标种类（共四类：旋转目标、区域目标、跟随目标、鸟瞰目标）
    /// </summary>
    public enum HK_TargetKind
    {
        RotTarget,      // 旋转目标  
        AreaTarget,     // 区域目标
        FollowTarget,   // 跟随目标
        BirdViewTarget  // 鸟瞰目标
    }

    /// <summary>
    /// 摄像机多目标切换管理工具，目标项基类
    /// </summary>
    public class HK_BaseTarget : HKTargetCam_BaseController
    {
        [HideInInspector]
        public HK_TargetKind TargetKind { get; protected set; } // 目标种类，由子类赋值

        [Header("枚举标记："), TargetUnique]
        public TargetEnum targetType;

        [Header("目标FOV："), Range(10, 120)]
        public float FOV = 60;

        public virtual void Awake()
        {
            // 获取系统中的摄像机目标管理系统，并初始化当前目标项
            this.GetSystem<IHK_TargetCamSystem>().InitCamTargetList(this);
        }

        void OnDestroy()
        {
            // 从摄像机目标管理系统中移除当前目标项
            this.GetSystem<IHK_TargetCamSystem>().RemoveFromCamTargetList(this);
        }
    }
}